package restlet;

import java.util.Vector;

import javax.jdo.PersistenceManager;

import model.Util;
import model.Version;
import model.VrstaPrevoza;

import org.restlet.resource.ServerResource;

import restlet.interfaces.TripCatsResourceI;
import app.PMF;
import beans.TripCatBean;

public class TripCatsResource extends ServerResource implements TripCatsResourceI{
	@Override
	public Vector<TripCatBean> allTripCats() {
		Vector<TripCatBean> cats = new Vector<TripCatBean>();
		for(VrstaPrevoza vp : Util.getAllEntitiesFromTable(VrstaPrevoza.class)){
			cats.add(vp.toTripCatBean());
		}
		return cats;
	}
	
	@Override
	public Integer getVersion() {
		Version vVrstaPrev = Util.getEnityByFieldEqualsValue(Version.class,
				"imeKlase", VrstaPrevoza.class.getSimpleName());
		Integer iVrednost = Integer.valueOf(vVrstaPrev.getVrednost());
		return iVrednost;
	}
	
	@Override
	public void addTripCat(TripCatBean tripCat) {

		getLogger().warning("TripCatsResource123,place: " + tripCat);

		//pretrazujemo bazu po nazivu
		VrstaPrevoza rTripCat = Util.getEnityByFieldEqualsValue(VrstaPrevoza.class, "naziv", tripCat.getNaziv());
		//ako ne postoji u bazi, dodajemo ga
		if(rTripCat == null){
			VrstaPrevoza vp = new VrstaPrevoza(tripCat.getNaziv());
			PersistenceManager pm = PMF.get().getPersistenceManager();
			pm.makePersistent(vp);
			System.out.println("Dodajemo vrstu prevoza: " + vp);

			//apdejtujemo novu verziju klase
			Version vVrstaPrev = Util.getEnityByFieldEqualsValue(Version.class,
					"imeKlase", VrstaPrevoza.class.getSimpleName());
			vVrstaPrev.setVrednost(vVrstaPrev.getVrednost()+1);
			pm.makePersistent(vVrstaPrev);
			
			pm.close();
		}
	}
}
